@echo off
chcp 65001 >nul
echo ====================================
echo   图片小程序后端服务启动脚本
echo ====================================
echo.

REM 检查 Node.js
where node >nul 2>nul
if %errorlevel% neq 0 (
    echo [错误] 未找到 Node.js，请先安装 Node.js
    pause
    exit /b 1
)

REM 检查 pnpm
where pnpm >nul 2>nul
if %errorlevel% neq 0 (
    echo [错误] 未找到 pnpm，请先安装: npm install -g pnpm
    pause
    exit /b 1
)

REM 检查依赖是否安装
if not exist "api\node_modules" (
    echo [提示] 检测到未安装依赖，正在安装...
    echo.
    echo [0] 安装根目录依赖...
    call pnpm install
    if %errorlevel% neq 0 (
        echo [错误] 根目录依赖安装失败
        pause
        exit /b 1
    )
    
    echo [0.1] 重建 better-sqlite3 原生模块...
    call pnpm rebuild better-sqlite3
    if %errorlevel% neq 0 (
        echo [警告] better-sqlite3 重建失败，可能需要安装编译工具
        echo [提示] 请确保已安装 Python 3.x 和 Visual Studio Build Tools
    )
    
    echo [1] 安装 API 服务依赖...
    cd api
    call pnpm install
    if %errorlevel% neq 0 (
        echo [错误] API 服务依赖安装失败
        cd ..
        pause
        exit /b 1
    )
    cd ..
    
    echo [2] 安装 Admin 服务依赖...
    cd admin
    call pnpm install
    if %errorlevel% neq 0 (
        echo [错误] Admin 服务依赖安装失败
        cd ..
        pause
        exit /b 1
    )
    cd ..
    
    echo [3] 安装管理后台前端依赖...
    cd admin-frontend
    call pnpm install
    if %errorlevel% neq 0 (
        echo [错误] 管理后台前端依赖安装失败
        cd ..
        pause
        exit /b 1
    )
    cd ..
    
    echo [提示] 依赖安装完成...
)

REM 检查数据库是否存在（数据库会在首次启动时自动创建）
if not exist "shared\data.db" (
    echo [提示] 数据库文件不存在，将在首次启动时自动创建...
)

echo [信息] 启动服务...
echo.

REM 启动三个服务（使用 start 命令在新窗口启动）
start "API服务" cmd /k "cd /d %~dp0api && pnpm run dev"
cmd /c ping 127.0.0.1 -n 3 >nul

start "Admin服务" cmd /k "cd /d %~dp0admin && pnpm run dev"
cmd /c ping 127.0.0.1 -n 3 >nul

start "管理后台" cmd /k "cd /d %~dp0admin-frontend && pnpm run dev"
cmd /c ping 127.0.0.1 -n 3 >nul

echo.
echo ====================================
echo   服务启动完成！
echo ====================================
echo API 服务:    http://localhost:3000
echo Admin 服务:  http://localhost:3001
echo 管理后台:    http://localhost:3002
echo.
echo 按任意键关闭此窗口（服务将继续运行）
pause >nul

